Elemente durch PUSH-Buttons ein- und ausblenden
Auf einem Report-Selektionsbild sind oftmals viele Bereiche, die aber für den täglichen Gebrauch nicht alle von Bedeutung sind. Durch geschickte Programmierung lässt sich auf einem Selektionsbild “ENJOY-Feeling” programmieren. Einzelne Bereiche können ein- oder ausgeblendet werden.
report zzdemo02.
tables sscrfields.
data:
anz1, anz2,
h_vbeln type vbeln,
h_posnr type posnr,
h_erdat type erdat,
h_matkl type matkl.
selection-screen pushbutton /1(20) push1 user-command push1.
select-options:
s_vbeln for h_vbeln modif id 1,
s_erdat for h_erdat modif id 1.
selection-screen pushbutton /1(20) push2 user-command push2.
select-options:
s_posnr for h_posnr modif id 2,
s_matkl for h_matkl modif id 2.
initialization.
*--> Import, damit bei F3 alle Werte erhalten bleiben:
import anz1 anz2 from memory id 'ZZMERK'.
check sy-subrc > 0.
push1 = 'Kopfdaten zeigen'. "pushbutton 1 benennen
perform loop_at_screen using '1' 0.
push1 = 'Positionsdaten zeigen'. "pushbutton 2 benennen
perform loop_at_screen using '2' 0.
at selection-screen.
*--> Pushbutton 1:
if sscrfields-ucomm = 'PUSH1'.
if anz1 is initial.
anz1 = 'X'.
else.
anz1 = space.
endif.
endif.
*--> Pushbutton 2:
if sscrfields-ucomm = 'PUSH2'.
if anz2 is initial.
anz2 = 'X'.
else.
anz2 = space.
endif.
endif.
at selection-screen output.
if anz1 is initial.
push1 = 'Kopfdaten anzeigen'.
perform loop_at_screen using '1' 0.
perform refresh sel using '1'.
else.
push1 = 'Kopfdaten ausblenden'.
perform loop_at_screen using '1' 1.
endif.
if anz2 is initial.
push2 = 'Positionsdaten anzeigen'.
perform loop_at_screen using '2' 0.
perform refresh sel using '2'.
else.
push2 = 'Positionsdaten ausblenden'.
perform loop_at_screen using '2' 1.
endif.
start-of-selection.
*--> Export, damit bei F3 alle werte erhalten bleiben
export anz1 anz2 to memory id 'ZZMERK'.
..
...
....
end-of-selection.
form loop_at_screen using value(p_gruppe) value(p_mode).
loop at screen.
if screen-group1 = p_gruppe.
screen-active = p_mode.
modify screen.
endif.
endloop.
endform.
form refresh_sel using value(p_gruppe).
case p_gruppe.
when '1'.
refresh: s1, s2.
when '2'.
refresh: s3, s4.
endcase.
endform.
Screenshots
Und so sieht’s aus.
Noch sind keine Daten sichtbar:

Nach Druck auf [Kopfdaten einblenden] werden die zugeordneten Felder sichtbar:

Kopfdaten und Positionsdaten sind eingeblendet:

Letzte Artikel von Enno Wulff (Alle anzeigen)
- Automatisches Eingabefeld [SAPGUI] - 9. Oktober 2025
- So verhinderst du Jobstarts zur falschen Zeit - 15. September 2025
- [apple] iCloud-Photos herunterladen - 21. Juli 2025


